/* 字符串统计字符串字母个数 */
function count(str){
	var obj={};
	for(var i=0;i<str.length; i++){
			if(!obj[str.charAt(i)]){  //对象初始化；如果key在对象中找不到则其数目为1
					obj[str.charAt(i)]= 1;
			} else{
					obj[str.charAt(i)]++;
			}
	}
	return obj;  //取出各个字母和它的个数，作为一个新对象保存在obj对象中
}

/* 字符串统计最多字母数	 */
function maxCount(str) {
	var obj=count(str);
	var arr=[];
	for(i in obj){
		arr.push(obj[i])
	}
	//排序得出sort[0]的值为最大值
	var sort=arr.sort(function(n1,n2) {
		return n2-n1
	})
	return sort[0];
}

/* 字符串统计个数最多的字母为哪个字母 */
function maxCountWord(str) {
	var obj=count(str);
	var arr=[];
	for(i in obj){
		arr.push(obj[i])
	}
	//排序得出sort[0]的值为最大值
	var sort=arr.sort(function(n1,n2) {
		return n2-n1
	})
	//再次循环对象，取出属于最大值的键
	for(i in obj){
		if(obj[i]==sort[0]){
			return i;
		}
	}
}

/* 字符串长度排序 */
function(str1,str2,str3){
	var strArr=[str1,str2,str3]
	return strArr.sort(function(a1,a2) {
		return a1.length-a2.length;//从短到长
		//return a2.length-a1.length;//从长到短
	});
}

/* 清除字符串的空格 */
function trim(str) {
	if (str && typeof str === "string") {//判断如果str存在 且str为字符串
		return str.replace(/\s+/mg,""); //去除空白符  \s代表空白字符 +代表1次或任意次 g代表全局,m代表所有行
	}
}

/*过滤html代码(把<>转换)*/
function filterTag (str) {
    str = str.replace(/&/ig, "&amp;");
    str = str.replace(/</ig, "&lt;");
    str = str.replace(/>/ig, "&gt;");
    str = str.replace(" ", "&nbsp;");
    return str;
}

//关键字加标签（多个关键词用空格隔开）
//ecDo.findKey('守侯我oaks接到了来自下次你离开快乐吉祥留在开城侯','守侯 开','i')
//"<i>守侯</i>我oaks接到了来自下次你离<i>开</i>快乐吉祥留在<i>开</i>城侯"
function findKey(str, key, el = 'span') {
	let arr = null, regStr = null, content = null, Reg = null;
	arr = key.split(/\s+/);
	//alert(regStr); //    如：(前端|过来)
	regStr = this.createKeyExp(arr);
	content = str;
	//alert(Reg);//        /如：(前端|过来)/g
	Reg = new RegExp(regStr, "g");
	//过滤html标签 替换标签，往关键字前后加上标签
	content = content.replace(/<\/?[^>]*>/g, '')
	return content.replace(Reg, "<" + el + ">$1</" + el + ">");
}

/*DOM转字符串*/
function domToStirng(htmlDOM){
    var div= document.createElement("div");
    div.appendChild(htmlDOM);
    return div.innerHTML
}

/*字符串转DOM*/
function stringToDom(htmlString){
    var div= document.createElement("div");
    div.innerHTML=htmlString;
    return div.children[0];
}

// 生成随机秘钥
function randomCode (len) {
    len = len || 32  // 不给定长度参数时默认为32位;
    let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
    let maxPos = chars.length  //位数
    let code = ''
    for (let i = 0; i < len; i++) {
        code += chars.charAt(Math.floor(Math.random() * maxPos));
    }
    return code
}

/**
 * 生成一个用不重复的ID
 * 将生成 rfmipbs8ag0kgkcogc 类似的ID
 */
function GenNonDuplicateID(randomLength){
  return Number(Math.random().toString().substr(3,randomLength) + Date.now()).toString(36)
}

//模拟UUID
function uuid (hasHyphen) {
  return (hasHyphen ? 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' : 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx').replace(/[xy]/g, function (c) {
		const r = Math.random() * 16 | 0
		const v = c == 'x' ? r : (r & 0x3 | 0x8)
		return v.toString(16)
  })
}